// 本文介绍的主要是java十进制数字类型转十六进制,由于十进制超出范围的问题。将超出范围的的数字转换为Long类型
,然后进行计算,同样可得到结果
package com.java.test;
public class JinZhi{
public static void main(String args[]){
JinZhi t = new JinZhi();
String a = t.t1(1000L);
System.out.println(a);
}
//把a转成指定进制
private String t2(int a,int n){
String str = "";
//1:用a去除以n,得到商和余数
int sun = a/n;
int yuShu = a%n;
str = ""+shuZhiToZhiMu(String.valueOf(yuShu));
while(sun > 0 ){
//2:继续用商去除以n,得到商和余数
yuShu = sun % n;
sun = sun / n;
//3:如果商为0,那么就终止
//4:把所有的余数倒序排列
str = shuZhiToZhiMu(String.valueOf(yuShu)) + str;
}
System.out.println(n+"进制==="+str);
return str;
}
//写一个方法实现:把一个十进制的数转换成为16进制的数
private String t1(Long a){
String str = "";
//1:用a去除以16,得到商和余数
Long sun = a/(16L);
Long yuShu = a%16L;
str = ""+shuZhiToZhiMu(String.valueOf(yuShu));
while(sun > 0 ){
//2:继续用商去除以16,得到商和余数
yuShu = sun % 16;
sun = sun / 16;
//3:如果商为0,那么就终止
//4:把所有的余数倒序排列
str = shuZhiToZhiMu(String.valueOf(yuShu)) + str;
}
System.out.println("16进制==="+str);
return str;
}
private String shuZhiToZhiMu(String a){
switch(a){ //若jdk版本switch不支持String,可以将String转换为int类型后判断
case "10" :
return "a";
case "11" :
return "b";
case "12" :
return "c";
case "13" :
return "d";
case "14" :
return "e";
case "15" :
return "f";
}
return ""+a;
}
}